1. Field of the Invention
This invention relates to data processing systems. More particularly this invention provides a negative cache management system and method for controlling valid and invalid memory component identifiers, and, thereby, accelerates performance of relatively high speed memory components, including hardware and software systems, that operate with storage devices.
2. Background
Data processing systems that are coupled to a large amount of data storage may spend significant amounts of CPU and I/O BUS time reading and writing data to and from data storage devices, such as disk drives or similar longer term data storage devices. Accordingly, many data processing systems include relatively high speed, short term caching systems that can be accessed much more rapidly by a coupled computer system without the delays associated with the mechanical motion and time delay inherent in a long term storage device. Conventional data processing systems may include caches at several levels of operation, such as, cache memory, disk cache, RAM, “macro” caches, local server caches, and web browser caches.
One of the most well known caching systems is the use of a name cache to access a directory or a file stored through the use of tree structured directories. Each disk contains a root directory, one or more subdirectories, and one or more files. Each directory contains entries for additional directories and files. A named file may be at the end of a path that passes through a root directory and one or more subdirectories (i.e., /Directory/Subdirectory/Filename). A specific file may be identified by accessing the drive, path, and filename. When a user requests a specific file, the operating system file system must take the file's pathname and search through all of the components (i.e., directories and subdirectories) to identify the location of the file associated with that filename.
In conventional file systems, the file system typically maintains a name cache containing the location of files that have earlier been requested and found. This avoids having to search again for a file every time that file is accessed. Traditionally, the unified file manager (UFM) of the file system receives a pathname/filename and first looks in the name cache to see if the location of the requested file identifier is already there. If not, the file identifier is passed to the flat file manager (FFM) that starts searching for the file in the directory. Some users might have thousands, tens of thousands, or even conceivably more files in a single directory, making it potentially very time consuming to search.
If an invalid file identifier is received, the file system will search through all directories in the PATH environment variable without finding it. Since the requested file identifier was not successfully located, nothing gets placed in the name cache. If users frequently ask for the same invalid file identifiers, the file system will be forced to repeatedly do useless searching that takes up valuable and CPU cycles and disk I/O. Accordingly, what is needed is a system and method for accelerating performance of relatively high speed memory components in such a way as to ensure that the memory addresses of invalid memory component identifiers are managed by a cache system and method that may be utilized by a coupled host computer in a relatively short period of time.